package lms

import (
	"hcy-api/lib/utils"
	"hcy-api/structs/base"
)

// BindCourseware 课程绑定课件
type BindCourseware struct {
	CourseId      int64                  `json:"courseId,string"`
	CoursewareIds utils.StringArrayInt64 `json:"coursewareIds"`
}

// AddCourseFolder 添加课程目录时使用的结构体
type AddCourseFolder struct {
	Name     string `json:"name"`
	ParentId int64  `json:"parentId,string"`
	Describe string `json:"describe"`
	Sort     int8   `json:"sort"`
}

// AddCourseware 添加课件素材记录时使用的结构体
type AddCourseware struct {
	Code               string `json:"code"`
	FileName           string `json:"fileName"`
	FileUid            string `json:"fileUid"`
	Width              string `json:"width"`
	Height             string `json:"height"`
	Label              string `json:"label"`
	CoursewareFolderId int64  `json:"coursewareFolderId,string"`
	AllowDownload      bool   `json:"allowDownload"`
	IsPublic           bool   `json:"isPublic"`
}

// UpdateCourseware 更新课件时使用的结构体
type UpdateCourseware struct {
	Id                 int64  `json:"id,string"`
	FileName           string `json:"fileName"`
	Code               string `json:"code"`
	Label              string `json:"label"`
	CoursewareFolderId int64  `json:"coursewareFolderId,string"`
	AllowDownload      bool   `json:"allowDownload"`
	IsPublic           bool   `json:"isPublic"`
}

// AddCourse 添加课程时的结构体
type AddCourse struct {
	Name          string                 `json:"name"`
	Code          string                 `json:"code"`
	Cover         string                 `json:"cover"`
	Describe      string                 `json:"describe"`
	AllowedX      int                    `json:"allowedX"`
	ClassHour     float64                `json:"classHour"`
	ClassScore    float64                `json:"classScore"`
	Label         string                 `json:"label"`
	SupportMobile bool                   `json:"supportMobile"`
	FolderId      int64                  `json:"folderId,string"`
	Sort          int8                   `json:"sort"`
	CoursewareIds utils.StringArrayInt64 `json:"coursewareIds"`
}

// PublishCourseDto 发布课程时使用的结构体
type PublishCourseDto struct {
	CourseId int64                  `json:"courseId,string"`
	IsPublic bool                   `json:"isPublic"`
	UserIds  utils.StringArrayInt64 `json:"userIds"`
	OrgIds   utils.StringArrayInt64 `json:"orgIds"`
}

// SearchCourse 查询课程分页信息使用的结构体
type SearchCourse struct {
	Name     string `json:"name" form:"name"`
	FolderId int64  `json:"folderId,string" form:"folderId"`
	base.Page
}

// SearchCourseware 查询课件分页信息使用的结构体
type SearchCourseware struct {
	Name     string `json:"name" form:"name"`                //素材名称
	Code     string `json:"code" form:"code"`                //素材编号
	FolderId int64  `json:"folderId,string" form:"folderId"` //目录名称
	IsMe     bool   `json:"isMe" form:"isMe"`                // 只看自己上传的。
	base.Page
}
